package cn.wolfcode.shop.seckillapi.service;

import cn.wolfcode.shop.seckillapi.domain.SeckillGood;
import cn.wolfcode.shop.seckillapi.vo.SeckillOrderVO;

import java.util.List;

public interface ISeckillGoodService {

    /**
     * 查询秒杀订单列表
     * @return
     */
    List<SeckillOrderVO> query();

    /**
     * 根据商品ID 查询
     * @param goodId
     * @return
     */
    SeckillOrderVO findById(Long goodId);

    /**
     * 根据商品ID 递减库存
     * @param goodId
     * @return
     */
    int reduce(Long goodId);

    /**
     * 根据商品ID 查询商品信息
     * @param goodId
     * @return
     */
    SeckillGood findByGoodId(Long goodId);

    /**
     * 订单超时,根据订单号,更改订单状态值
     * @param orderNo
     * @return
     */
    int timeOutCancelOrder(String orderNo);

    /**
     * 订单超时,根据商品ID ,回滚MySQL数据,
     * @param goodId
     */
    void updateByGoodId(Long goodId);

    void goodInit();
}
